package com.ruoyi.training.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 换证管理对象 certificate_reissue
 * 
 * @author hcc
 * @date 2025-11-06
 */
public class CertificateReissue extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 换证id */
    private String certificateReissueId;

    /** 证书模板id */
    @Excel(name = "证书模板id")
    private String templateId;

    /** 学员id */
    @Excel(name = "学员id")
    private String studentId;

    /** 项目id */
    @Excel(name = "项目id")
    private String projectId;

    /** 报名id */
    @Excel(name = "报名id")
    private String registrationId;

    /** 证书类型 */
    @Excel(name = "证书类型")
    private String certificateType;

    /** 电子证书状态 */
    @Excel(name = "电子证书状态")
    private String digitalStatus;

    /** 纸质证书状态 */
    @Excel(name = "纸质证书状态")
    private String paperStatus;

    /** 证书编号 */
    @Excel(name = "证书编号")
    private String certificateNo;

    /** 电子证书发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "电子证书发布时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date digitalIssueTime;

    /** 原证书有效期起 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "原证书有效期起", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date originalValidityStart;

    /** 原证书有效期止 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "原证书有效期止", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date originalValidityEnd;

    /** 原证书编号 */
    @Excel(name = "原证书编号")
    private String originalCertificateNo;

    /** 费用 */
    @Excel(name = "费用")
    private String certificateReissueFee;

    /** 缴费id */
    @Excel(name = "缴费id")
    private String paymentId;

    /** 发票id */
    @Excel(name = "发票id")
    private String invoiceId;

    /** 证书有效期起 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "证书有效期起", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validityStart;

    /** 证书有效期止 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "证书有效期止", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validityEnd;

    /** 纸质证书发放时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "纸质证书发放时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paperIssueTime;

    /** 纸质证领取方式 */
    @Excel(name = "纸质证领取方式")
    private String receiveMethod;

    /** 纸质证书申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "纸质证书申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paperApplyTime;

    /** 快递单号 */
    @Excel(name = "快递单号")
    private String trackingNo;

    /** 是否立刻发布电子证书成绩(0:否,1:是) */
    @Excel(name = "是否立刻发布电子证书成绩(0:否,1:是)")
    private String immediatePublish;

    /** 临近过期期限(天) */
    @Excel(name = "临近过期期限(天)")
    private String expireReminderDays;

    /** 撤销原因 */
    @Excel(name = "撤销原因")
    private String revokeReason;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 更新人 */
    private String updatedBy;

    /** 创建时间 */
    private Date createdTime;

    /** 更新时间 */
    private Date updatedTime;

    public void setCertificateReissueId(String certificateReissueId) 
    {
        this.certificateReissueId = certificateReissueId;
    }

    public String getCertificateReissueId() 
    {
        return certificateReissueId;
    }

    public void setTemplateId(String templateId) 
    {
        this.templateId = templateId;
    }

    public String getTemplateId() 
    {
        return templateId;
    }

    public void setStudentId(String studentId) 
    {
        this.studentId = studentId;
    }

    public String getStudentId() 
    {
        return studentId;
    }

    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }

    public void setRegistrationId(String registrationId) 
    {
        this.registrationId = registrationId;
    }

    public String getRegistrationId() 
    {
        return registrationId;
    }

    public void setCertificateType(String certificateType) 
    {
        this.certificateType = certificateType;
    }

    public String getCertificateType() 
    {
        return certificateType;
    }

    public void setDigitalStatus(String digitalStatus) 
    {
        this.digitalStatus = digitalStatus;
    }

    public String getDigitalStatus() 
    {
        return digitalStatus;
    }

    public void setPaperStatus(String paperStatus) 
    {
        this.paperStatus = paperStatus;
    }

    public String getPaperStatus() 
    {
        return paperStatus;
    }

    public void setCertificateNo(String certificateNo) 
    {
        this.certificateNo = certificateNo;
    }

    public String getCertificateNo() 
    {
        return certificateNo;
    }

    public void setDigitalIssueTime(Date digitalIssueTime) 
    {
        this.digitalIssueTime = digitalIssueTime;
    }

    public Date getDigitalIssueTime() 
    {
        return digitalIssueTime;
    }

    public void setOriginalValidityStart(Date originalValidityStart) 
    {
        this.originalValidityStart = originalValidityStart;
    }

    public Date getOriginalValidityStart() 
    {
        return originalValidityStart;
    }

    public void setOriginalValidityEnd(Date originalValidityEnd) 
    {
        this.originalValidityEnd = originalValidityEnd;
    }

    public Date getOriginalValidityEnd() 
    {
        return originalValidityEnd;
    }

    public void setOriginalCertificateNo(String originalCertificateNo) 
    {
        this.originalCertificateNo = originalCertificateNo;
    }

    public String getOriginalCertificateNo() 
    {
        return originalCertificateNo;
    }

    public void setCertificateReissueFee(String certificateReissueFee) 
    {
        this.certificateReissueFee = certificateReissueFee;
    }

    public String getCertificateReissueFee() 
    {
        return certificateReissueFee;
    }

    public void setPaymentId(String paymentId) 
    {
        this.paymentId = paymentId;
    }

    public String getPaymentId() 
    {
        return paymentId;
    }

    public void setInvoiceId(String invoiceId) 
    {
        this.invoiceId = invoiceId;
    }

    public String getInvoiceId() 
    {
        return invoiceId;
    }

    public void setValidityStart(Date validityStart) 
    {
        this.validityStart = validityStart;
    }

    public Date getValidityStart() 
    {
        return validityStart;
    }

    public void setValidityEnd(Date validityEnd) 
    {
        this.validityEnd = validityEnd;
    }

    public Date getValidityEnd() 
    {
        return validityEnd;
    }

    public void setPaperIssueTime(Date paperIssueTime) 
    {
        this.paperIssueTime = paperIssueTime;
    }

    public Date getPaperIssueTime() 
    {
        return paperIssueTime;
    }

    public void setReceiveMethod(String receiveMethod) 
    {
        this.receiveMethod = receiveMethod;
    }

    public String getReceiveMethod() 
    {
        return receiveMethod;
    }

    public void setPaperApplyTime(Date paperApplyTime) 
    {
        this.paperApplyTime = paperApplyTime;
    }

    public Date getPaperApplyTime() 
    {
        return paperApplyTime;
    }

    public void setTrackingNo(String trackingNo) 
    {
        this.trackingNo = trackingNo;
    }

    public String getTrackingNo() 
    {
        return trackingNo;
    }

    public void setImmediatePublish(String immediatePublish) 
    {
        this.immediatePublish = immediatePublish;
    }

    public String getImmediatePublish() 
    {
        return immediatePublish;
    }

    public void setExpireReminderDays(String expireReminderDays) 
    {
        this.expireReminderDays = expireReminderDays;
    }

    public String getExpireReminderDays() 
    {
        return expireReminderDays;
    }

    public void setRevokeReason(String revokeReason) 
    {
        this.revokeReason = revokeReason;
    }

    public String getRevokeReason() 
    {
        return revokeReason;
    }

    public void setCreatedBy(String createdBy) 
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }

    public void setUpdatedBy(String updatedBy) 
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() 
    {
        return updatedBy;
    }

    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }

    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("certificateReissueId", getCertificateReissueId())
            .append("templateId", getTemplateId())
            .append("studentId", getStudentId())
            .append("projectId", getProjectId())
            .append("registrationId", getRegistrationId())
            .append("certificateType", getCertificateType())
            .append("digitalStatus", getDigitalStatus())
            .append("paperStatus", getPaperStatus())
            .append("certificateNo", getCertificateNo())
            .append("digitalIssueTime", getDigitalIssueTime())
            .append("originalValidityStart", getOriginalValidityStart())
            .append("originalValidityEnd", getOriginalValidityEnd())
            .append("originalCertificateNo", getOriginalCertificateNo())
            .append("certificateReissueFee", getCertificateReissueFee())
            .append("paymentId", getPaymentId())
            .append("invoiceId", getInvoiceId())
            .append("validityStart", getValidityStart())
            .append("validityEnd", getValidityEnd())
            .append("paperIssueTime", getPaperIssueTime())
            .append("receiveMethod", getReceiveMethod())
            .append("paperApplyTime", getPaperApplyTime())
            .append("trackingNo", getTrackingNo())
            .append("immediatePublish", getImmediatePublish())
            .append("expireReminderDays", getExpireReminderDays())
            .append("revokeReason", getRevokeReason())
            .append("createdBy", getCreatedBy())
            .append("updatedBy", getUpdatedBy())
            .append("createdTime", getCreatedTime())
            .append("updatedTime", getUpdatedTime())
            .toString();
    }
}
